Virtualization is a way in which computing resources can be abstracted between a number of users. A virtual machine manager, or a hypervisor, can be placed between the operating system (“OS”) and the hardware. Typically, the virtual machine manager executes in a privileged mode, and can host one or more operating systems, or guest OSs, in a sandbox (the virtual machine (“VM”)). Each guest OS operates under the illusion of exclusive access to the system processor(s), peripherals, memory, and I/O of the system. The virtual machine manager arbitrates access to all shared resources in a similar way to how a traditional operating system enables the concurrent executions of user processes.
Current virtualization systems adapted for storage are designed for server and enterprise level hardware, such as SCSI and Fiber Channel (“FC”) hard drives and controllers. Virtualization with such hardware can include para-virtualization techniques where modifications to the guest OS's kernel are required, and SCSI front end drivers (pvSCSI drivers) communicate with Host OS backend drivers which communicate to native drivers that manage the hardware. Another FC approach is to use FC host bus adapter (“HBA”) cards that are enhanced with N_Port ID Virtualization (NPIV). This allows a single HBA card to be used with multiple Guest OS. These approaches however require software intervention, and thus are inefficient due to the increased processor utilization.
An alternative hardware approach, adapted for use with SCSI systems is to use a hardware mechanism called Direct I/O hardware. The Direct I/O hardware sits between the Host OS and the guest OSs and performs the job of address translation and protection that was performed by the software hypervisor in the earlier examples. The current technology is workable only for SCSI and FC hardware storage systems, and is not capable of being adapted for SATA use.
The above-described description is merely intended to provide a contextual overview of current techniques for storage virtualization and is not intended to be exhaustive.